package com.yunji.aggregate.model.dto.analysis;

import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableId;
import com.fasterxml.jackson.annotation.JsonFormat;
import com.yunji.common.annotation.Excel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import org.hibernate.validator.constraints.Length;

import java.math.BigDecimal;
import java.util.Date;

/**
 * @Project: yunji-coffee
 * @Package: com.yunji.order.params
 * @Title: orderParam
 * <p>
 * History:
 * Date                     Version     Author          Summary
 * ============================================================
 * 2024-08-01 10:37:01      V1.0        HuaAo       新建类
 */
@Data
public class PayoutParam {

    private static final long serialVersionUID = 3695813593578267489L;

    @ApiModelProperty("查询字段")
    private String searchFiled;

    @ApiModelProperty("父级所属ID")
    private Long parentId;

    @ApiModelProperty("转账ID")
    @TableId(type = IdType.AUTO)
    private Long payoutId;

    @Excel(name = "提现流水号", width = 30)
    @ApiModelProperty("提现流水号")
    @Length(message = "提现流水号不能超过{max}个字节", max = 20)
    private String payoutCode;

    @Excel(name = "第三方支付流水号", width = 30)
    @ApiModelProperty("第三方支付流水号")
    private String payCode;

    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    @Excel(name = "第三方支付时间", dateFormat = "yyyy-MM-dd HH:mm:ss", width = 20)
    @ApiModelProperty("第三方支付时间")
    private Date payTime;

    @ApiModelProperty("所属ID")
    private Long belongId;

    @ApiModelProperty("申请人ID")
    private Long userId;

    @Excel(name = "申请人名称", width = 10)
    @ApiModelProperty("申请人名称")
    private String userName;

    @Excel(name = "真实姓名", width = 10)
    @ApiModelProperty("真实姓名")
    private String realName;

    @Excel(name = "用户类型", width = 5)
    @ApiModelProperty("用户类型")
    private String userType;

    @Excel(name = "申请人电话", width = 15)
    @ApiModelProperty("申请人电话")
    @Length(message = "申请人手机号不能超过{max}个字符", max = 11)
    private String phone;

    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    @Excel(name = "申请时间", dateFormat = "yyyy-MM-dd HH:mm:ss", width = 20)
    @ApiModelProperty("申请时间")
    private Date applyTime;

    @Excel(name = "申请状态", readConverterExp = "1=待审核,2=待转账,3=已驳回,4=提现成功,5=提现失败,6=已关闭", width = 10)
    @ApiModelProperty("申请状态 (1:待审核;2:待转账;3:已驳回;4:提现成功;5:提现失败;6:已关闭)")
    private Integer applyStatus;

    @Excel(name = "申请金额", width = 5)
    @ApiModelProperty("申请金额")
    private BigDecimal amount;

    @Excel(name = "提现渠道 (1、微信支付; 2、阿里支付)", width = 5)
    @ApiModelProperty("提现渠道 (1、微信支付; 2、阿里支付)")
    private Integer channel;

    @Excel(name = "提现账户", width = 15)
    @ApiModelProperty("提现账户")
    @Length(message = "收款账号不能超过{max}个字符", max = 25)
    private String account;

    @ApiModelProperty("审核人ID")
    private Long auditor;

    @ApiModelProperty("审核人名称")
    private String auditName;

    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    @Excel(name = "审核时间", dateFormat = "yyyy-MM-dd HH:mm:ss", width = 20)
    @ApiModelProperty("审核时间")
    private Date auditTime;

    @Excel(name = "审核备注", width = 15)
    @ApiModelProperty("审核备注")
    private String auditRemark;

    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    @ApiModelProperty("关闭时间")
    private Date closedTime;

    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    @Excel(name = "完成时间", dateFormat = "yyyy-MM-dd HH:mm:ss", width = 20)
    @ApiModelProperty("完成时间")
    private Date finishTime;

    @ApiModelProperty("删除状态 (0:未删除;1:已删除;)")
    private Integer delFlag;

    /*--------------------------------------------------------------------------------------------查询--------------------------------------------------------------------------------------*/
    @ApiModelProperty("低的提现金额")
    private BigDecimal minAmount;

    @ApiModelProperty("高的提现金额")
    private BigDecimal maxAmount;
}